package com.yidu.hbatsft.action;

import com.yidu.hbatsft.domain.AtsEmpAthlete;
import com.yidu.hbatsft.domain.AtsScheme;
import com.yidu.hbatsft.domain.AtsSchemeAudit;
import com.yidu.hbatsft.domain.AtsSchemeExpert;
import com.yidu.hbatsft.service.AtsSchemeAuditService;
import com.yidu.hbatsft.service.AtsSchemeExpertService;
import com.yidu.utils.Page;
import com.yidu.utils.Message;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 *@ClassName AtsSchemeExpertController
 *@Description 专家咨询控制类
 *@Author 张雨虹
 *@Date 2020/1/9 9:51
 *@Version 1.0
 **/
@Controller
@RequestMapping("/ase")
public class AtsSchemeExpertController {
    /**
     * 专家咨询表Service
     */
    @Resource
    AtsSchemeExpertService atsSchemeExpertService;
    /**
     * 审核表Service
     */
    @Resource
    AtsSchemeAuditService atsSchemeAuditService;

    /**
     * 专家咨询表查询所有方法
     * @param pageNum
     * @param pageSize
     * @param expert
     * @return
     */
    @ResponseBody
    @RequestMapping("atsSchemeExpertFindAll")
    public Map<String,Object> findAll(@RequestParam("page") Integer pageNum,@RequestParam("limit") Integer pageSize,AtsSchemeExpert expert){
        //创建一个map集合
        Map<String, Object> map = new HashMap<String, Object>();
        //调用专家咨询表查询所有的方法创建一个list集合接收
        List<AtsSchemeExpert> list = atsSchemeExpertService.findAll(pageNum,pageSize,expert);
        //将code设置为0
        map.put("code", 0);
        //将msg设置为空
        map.put("msg", "");
        //将count行数设置为list大小
        map.put("count", list.size());
        //将date放入list集合
        map.put("data", list);
        //返回map
        return map;
    }

    /**
     * 专家咨询表查询所有方法
     * @param page
     * @return
     */
    @ResponseBody
    @RequestMapping("findAll")
    public Map<String,Object> findAll(Page page){
        //创建一个map集合
        Map<String, Object> map = new HashMap<String, Object>();
        //调用专家咨询表查询所有的方法创建一个list集合接收
        List<AtsSchemeExpert> list = atsSchemeExpertService.findAll(page);
        //将code设置为0
        map.put("code", 0);
        //将msg设置为空
        map.put("msg", "");
        //将count行数设置为list大小
        map.put("count", list.size());
        //将date放入list集合
        map.put("data", list);
        //返回map
        return map;
    }

    /**
     * 方案表审核增加专家咨询方法——康复专用
     * @param atsSchemeExpert
     * @return
     */
    @ResponseBody
    @RequestMapping("schemeaddorupdate")
    public Message schemeaddorupdate(AtsSchemeExpert atsSchemeExpert){
        System.out.println("提交申请");
        System.out.println("方案名字"+atsSchemeExpert.getSaName());
        System.out.println("方案id"+atsSchemeExpert.getSchemeId());
        //调用根据专家id查询方法用对象接收
        AtsSchemeExpert SchemeExpert=atsSchemeExpertService.selectByschemeKey(atsSchemeExpert.getSchemeId());
        //设置一个变量为0
        int i=0;
        if(SchemeExpert!=null){//判断对象是否为空
            System.out.println("提交过");
            //设置审核状态为10
            atsSchemeExpert.setAuditState("10");
            //设置删除状态
            atsSchemeExpert.setIsva(0);
            //调用根据id修改方法用int变量接收
            i=atsSchemeExpertService.updateByschemeKey(atsSchemeExpert);
        }else{
            System.out.println("未提交过");
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
            //获取时间
            atsSchemeExpert.setApplyForTime(df.format(new Date()));
            //获取审核状态为10
            atsSchemeExpert.setAuditState("10");
            //设置删除状态
            atsSchemeExpert.setIsva(0);
            //调用新增方法用int变量接收
            i=atsSchemeExpertService.insertSelective(atsSchemeExpert);
        }
        //new出审核类对象
        AtsSchemeAudit atsSchemeAudit=new AtsSchemeAudit();
        //获取方案id
        atsSchemeAudit.setSaId(String.valueOf(atsSchemeExpert.getSchemeId()));
        //获取方案名字
        atsSchemeAudit.setSaName(atsSchemeExpert.getSaName());
        //获取审核状态
        atsSchemeAudit.setAuditState(atsSchemeExpert.getAuditState());
        //new出一个date
        Date date= new Date();
        //设置日期格式
        SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd");
        //获取时间
        atsSchemeAudit.setAuTime(sdf.format(date));
        //设置未删除状态
        atsSchemeAudit.setIsva(1);
        //调用根据id查询方法用审核对象对象接收
        AtsSchemeAudit SchemeAudit=atsSchemeAuditService.finbysaId(String.valueOf(atsSchemeExpert.getSchemeId()));
        if(SchemeAudit!=null){//判断对象是否为空
            System.out.println("修改");
            //调用根据id修改方法
            atsSchemeAuditService.updateAuditBySaId(atsSchemeAudit);
        }else{
            System.out.println("新增");
            //调用新增方法
            atsSchemeAuditService.insertSelective(atsSchemeAudit);
        }
        //new出一个信息类
        Message message= new Message();
        //设置NUM为1
        message.setNum(i);
        //返回信息类
        return message;
    }

    /**
     * 根据方案id查询的方法
     * @param id
     * @return
     */
    @RequestMapping("finbyid")
    @ResponseBody
    public AtsSchemeExpert finbyid(Integer id){
        System.out.println("进入根据方案id查询的方法");
        //调用根据id查询方法
        AtsSchemeExpert atsSchemeExpert = atsSchemeExpertService.selectByschemeKey(id);
        //返回对象
        return atsSchemeExpert;
    }

    /**
     * 修改咨询表的同时新增审核表
     * @param record
     * @param schemeAudit
     * @return
     */
    @RequestMapping("addSchemeAuditupdateSchemeExpert")
    @ResponseBody
    public Message addSchemeAuditupdateSchemeExpert(AtsSchemeExpert record, AtsSchemeAudit schemeAudit,Integer id,String state){
        System.out.println(""+state);
        //new出date
        Date date=new Date();
        /*设置日期格式yyy-MM-dd hh:mm:ss*/
        SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd");
        System.out.println(sdf.format(date));
        //获取到方案id
        record.setSchemeId(id);
        //获取当前时间放入审核时间
        schemeAudit.setAuTime(sdf.format(date));
        //获取审核表的方案id
        schemeAudit.setSaId(String.valueOf(id));
        //设置未删除状态
        schemeAudit.setIsva(1);

        if(state==null||"".equals(state)){//判断state为空
            //专家咨询对象获取到审核状态为21
            record.setAuditState("21");
            //审核对象获取到审核状态为21
            schemeAudit.setAuditState("21");
        }else if("on".equals(state)) {//判断state为on
            //专家咨询对象获取到审核状态为20
            record.setAuditState("20");
            //审核对象获取到审核状态为20
            schemeAudit.setAuditState("20");
        }
        //调用新增审核表修改咨询表的防范用int对象接收
        int i=atsSchemeExpertService.addSchemeAuditupdateSchemeExpert(record,schemeAudit);
        //new出信息对象
        Message message= new Message();
        //设置NUM为i
        message.setNum(i);
        //返回信息对象
        return message;
    }

    /**
     * 修改专家咨询表的状态
     * @param id
     * @return
     */
    @RequestMapping("updateSchemeExpert")
    @ResponseBody
    public Message updateSchemeExpert(Integer id){
        //new出一个专家咨询类的对象
        AtsSchemeExpert atsSchemeExpert = new AtsSchemeExpert();
        //获取到方案id
        atsSchemeExpert.setSchemeId(id);
        //获取到未删除状态
        atsSchemeExpert.setIsva(1);
        //调用修改方法用int对象接收
        int i=atsSchemeExpertService.updateByschemeKey(atsSchemeExpert);
        //new出信息类
        Message message= new Message();
        //设置NUM为i
        message.setNum(i);
        //返回信息对象
        return message;
    }

    /**
     * 修改专家咨询表的状态
     * @param record
     * @return
     */
    @RequestMapping("updateSchemeExpertbyschemeId")
    @ResponseBody
    public Message updateSchemeExpertbyschemeId(AtsSchemeExpert record){
        //设置审核状态为40
        record.setAuditState("40");
        //调用修改方法用int对象接收
        int i=atsSchemeExpertService.updateByschemeKey(record);
        //new出一个信息类
        Message message= new Message();
        //设置NUM为i
        message.setNum(i);
        //放回信息对象
        return message;
    }
}
